//手写redux-thunk中间件, 对action进行拦截，实现派发方法进行网络请求
function thunk(store) {
  const next = store.dispatch

  function dispatchThunk(action) {
    if (typeof action === "function") {
      //如果传入的action是一个函数，那么执行这个函数
      action(store.dispatch, store.getState);
    } else {
      //如果传入的action是一个对象，直接派发它
      next(action)
    }
  }

  store.dispatch = dispatchThunk
}

export default thunk